package model.evenements;

import java.util.LinkedHashMap;

import tool.externalResLoader.absTreeFileLoader;
import exception.FileFormatException;
import exception.PathErrorException;

/**
 * Classe representant un evenement mineur (activite)
 */
public abstract class EvenementMineur extends absEvenement
{
	/**
	 * Represente le niveau de difficulte, en pourcentage
	 */
	final int niveau;

	/**
	 * Constructeur a partir d'une source
	 * 
	 * @param r la source
	 * @throws FileFormatException
	 */
	public EvenementMineur(absTreeFileLoader r) throws FileFormatException
	{
		super(r);
		try
		{
			this.niveau = r.getElementInt("niveau");
		}
		catch (PathErrorException e)
		{
			throw new FileFormatException(e, r);
		}

	}

	/**
	 * Constructeur a parametres directes
	 * 
	 * @param id
	 * @param titre
	 * @param desc
	 * @param suivantes
	 * @param niveau
	 */
	public EvenementMineur(Integer id, String titre, String desc,
			LinkedHashMap<Integer, String> suivantes, Integer niveau)
	{
		super(id, titre, desc, suivantes);
		this.niveau = niveau;
	}

	@Override
	public absTreeFileLoader save(absTreeFileLoader r)
	{
		super.save(r);

		try
		{
			r.addElement("niveau", this.niveau);
			return r;
		}
		catch (PathErrorException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}

}
